package com.wingsoft.work.dto;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import com.wingsoft.common.core.domain.BasicEntity;
/**
 * 用户任务对象 t_user_task
 *
 * @author hemj
 * @date 2025-10-20
 */
@Data
@ApiOperation("用户任务请求实体")
public class UserTaskDto extends BasicEntity
{

    /** 主键 */
    @ApiModelProperty("查询明细的时候传id")
    private Long id;
    /** 用户id */
    private Long userId;
    /** 任务类型，1为文生视频，2为图+文生视频 */
    @ApiModelProperty("任务类型，1为文生视频，2为图+文生视频")
    private Integer taskType;
    /** 图片地址 */
    @ApiModelProperty("图片地址")
    private String picUrl;
    /** 视频描述 */
    @ApiModelProperty("视频描述")
    private String des;
    /** 画面模式，1为横版，2为竖版，3为高清横版，4为高清竖版 */
    @ApiModelProperty("画面模式，1为横版，2为竖版，3为高清横版，4为高清竖版")
    private Integer videoType;
    @ApiModelProperty("时间")
    private Integer seconds;
    /** 使用积分 */
    private BigDecimal costPoint;
    /** 状态，1为生成中，2为生成成功，3为最终生成失败 */
    @ApiModelProperty("状态，1为生成中，2为生成成功，3为最终生成失败")
    private Integer status;
    /** 视频地址 */
    private String videoUrl;
    /** 失败描述 */
    private String failMsg;
    private String taskId;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime finishTime;

    @ApiModelProperty("批量生成专用")
    private List<SimpleTask> simpleTaskList = new ArrayList<>();
    /**
     * 是否删除，1是0否
     */
    private Integer delFlag;

    @ApiModelProperty("当前接口类型，1为bltcy，2为codeai")
    private String nowInterfaceType;

    @ApiModelProperty("历史接口类型，多个逗号隔开")
    private String hisInterfaceType;

    /** 开始生成时间 */
    private Date startTime;
    /** 接口内容 */
    private String apijson;

    /** oss服务视频地址 */
    private String ossVideoUrl;

    /** oss转存状态，1为新建，2为成功，3为转存失败 */
    private Integer ossStatus;

    /** 重试次数 */
    private Integer ossTime;
}
